The baseline profit Z of each hectare of a farm is given by
Z=Y-X
where Y is gross income, and X is total costs. These are in turn given by
\begin{array}{rcl}
Y &=& pq \\
X &=& x+te
\end{array}
where
p is the price obtained per unit,
q is the quantity produced per hectare,
x is the cost per hectare to operate,
e is the greenhouse gas emissions per hectare, and
t is the tax on each unit of emissions.
Each of these parameters may depend on the farm typeF (one of Crops, Dairy, Forestry, or Sheep/Beef) and the land use capability (LUC), L, such that the full calculation of profit for each hectare of a farm is
Z_{FL} = p_Fq_{FL} - x_{FL} - te_{FL}
and total farm profit is obtaining by summing this quantity across all hectares of the farm (which may be of varying landuse capability L).
Parameter values
The parameter values are stored in a number of CSV files which are read in by the model at start up.
Prices
p_F and the greenhouse gas tax (i.e. carbon price), t, are in the prices.csv file:
Note that all of yields, base costs, and emissions are stored as a mean and a standard deviation, and that individual hectare sites will see these numbers vary every model time period by drawing from a normal distribution.
We can use these data to show the profit, gross income, and total costs for each farm type across different landuse capability classes. We’ll throw away the standard deviations for simplicity and consider only mean outcomes.
Below are shown the income, costs, and net revenue per hectare for each farm type across the eight landuse capability classes. These are crude estimates dating back to the ARLUNZ model1 and will be updated in due course.
Code
plot_data <- combined_data |>pivot_longer(cols =c("Gross income", "Profit", "Total costs"))ggplot(plot_data |>filter(name %in%c("Gross income", "Total costs"))) +geom_col(aes(x =as.factor(LUC), y = value, group = name, fill = name),position ="dodge") +scale_fill_manual(values =c("#999999", "#ff6666"), name ="Income vs. Costs") +geom_point(data = plot_data |>filter(name =="Profit"), aes(x = LUC, y = value, shape = name), size =7) +scale_shape_manual(values ="\u2014", name ="") +# \u2014 is an em-dash# The below more correct, but doesn't extend the lines to the full width of the plot# geom_step(data = plot_data |> filter(name == "Profit"), # aes(x = LUC, y = value, group = farm_type, colour = name), # direction = "mid", lwd = 0.65) +# scale_colour_manual(values = c("black"), name = "") +xlab("Landuse Capability (LUC)") +ylab("Profit, $ per ha.") +facet_wrap(~ farm_type) +theme_minimal()